#!/usr/bin/env python
# -*- coding:utf-8 -*-

import akshare as ak


def get_stock_kdata_ak(stock_code, period, start_date, end_date):
    """
    使用AkShare获取股票K线数据

    参数:
    stock_code: 股票代码，格式如 'sh600519' (贵州茅台)
    period: 周期，'daily'表示日线，'weekly'表示周线，'monthly'表示月线
    start_date: 开始日期，格式 'YYYYMMDD'
    end_date: 结束日期，格式 'YYYYMMDD'
    """
    try:
        # 获取股票数据
        df = ak.stock_zh_a_hist(symbol=stock_code, period=period,
                                start_date=start_date, end_date=end_date,
                                adjust="qfq")  # qfq表示前复权

        # 重命名列以保持一致性
        df = df.rename(columns={
            '日期': 'date',
            '开盘': 'open',
            '收盘': 'close',
            '最高': 'high',
            '最低': 'low',
            '成交量': 'volume',
            '成交额': 'amount',
            '振幅': 'amplitude',
            '涨跌幅': 'change_percent',
            '涨跌额': 'change_amount',
            '换手率': 'turnover'
        })

        return df
    except Exception as e:
        print(f"获取数据失败: {e}")
        return None


# 示例：获取贵州茅台2023年日线数据
data = get_stock_kdata_ak('sh600519', 'daily', '20230101', '20231231')
if data is not None:
    print(data.head())
    print(f"共获取{len(data)}条记录")